from myLog import logger


# logger.critical("这是critical级别的日志")

# 写一个函数完成三次登陆功能：
#
# - 用户的用户名密码从一个文件register中取出。
# - register文件包含多个用户名，密码，用户名密码通过|隔开，每个人的用户名密码占用文件中一行。
# - 完成三次验证，三次验证不成功则登录失败，登录失败返回False。
# - 报错信息使用log打出（log在其他文件封装，导入进来使用）
# - 登陆成功返回True。

def read_text(file):
    user_info = {}
    with open(file) as f:
        datas = f.read()
        for data in datas.split("\n"):
            user_info[data.split("|")[0]] = data.split("|")[1]
    return user_info

# print(read_text(r".\register"))

def login():
    status = False
    for i in range(3):
        name = input("请输入用户名：")
        logger.info("用户登录时输入的用户名是：{}".format(name))
        pwd = input("请输入密码：")
        logger.info("用户登录时输入的密码：{}".format(pwd))
        user_info = read_text(r".\register")
        if user_info.get(name) == pwd:
            status = True
            print("登录成功！！！！")
            logger.info("用户{}登录系统成功。".format(name))
            break
        else:
            print("用户名或密码错误，请重新登录！！！！")
    if not status:
        print("密码错误次数超过三次，请稍后再试！！！")
        logger.warning("ip：xxx.xxx.xxx.xxx短时间内多次登录错误，存在暴力破解风险")
    return status


def regsiter():
    status = False
    name = input("请输入用户名：")
    pwd = input("请输入密码：")
    user_info = read_text(r".\register")
    if name in user_info.keys():
        print("用户名已存在，注册失败！！！！")
    else:
        user = "\n"+name+"|"+pwd
        with open(r".\register", "a") as f:
            f.write(user)
            status = True
    return status


login()
# regsiter()